/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * SecaoView.java
 *
 * Created on 06/05/2011, 19:00:30
 */

package br.com.comprasPublicas.view.cadastro;

import br.com.comprasPublicas.dao.DAOGenerico;
import br.com.comprasPublicas.entity.Departamento;
import br.com.comprasPublicas.entity.Secao;
import br.com.comprasPublicas.util.HibernateUtil;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Etec Piraju
 */
public class SecaoView extends javax.swing.JFrame {

    /** Creates new form SecaoView */
    public SecaoView() {
        initComponents();
        preencher_jtable();
        btn_novo.requestFocus();
        tbl_departamento.setSelectionMode(0);

        //Método utilizado para centralizar o JFrame na tela
        Dimension tela = Toolkit.getDefaultToolkit().getScreenSize();
        this.setLocation((tela.width - this.getSize().width) / 2, (tela.height - this.getSize().height) / 2);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        btn_novo = new javax.swing.JButton();
        btn_salvar = new javax.swing.JButton();
        jLabel11 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        opt_nao = new javax.swing.JRadioButton();
        opt_sim = new javax.swing.JRadioButton();
        txt_nome_departamento = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        tbl_departamento = new javax.swing.JTable();
        txt_id_departamento = new javax.swing.JTextField();
        txt_secao = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        btn_atualizar = new javax.swing.JButton();
        txt_chefe = new javax.swing.JTextField();
        btn_excluir = new javax.swing.JButton();
        txt_id_secao = new javax.swing.JTextField();
        btnVoltar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setName("Form"); // NOI18N
        setResizable(false);
        setUndecorated(true);

        jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        jPanel1.setName("jPanel1"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(br.com.comprasPublicas.compraspublicas.ComprasPublicasApp.class).getContext().getResourceMap(SecaoView.class);
        btn_novo.setText(resourceMap.getString("btn_novo.text")); // NOI18N
        btn_novo.setName("btn_novo"); // NOI18N
        btn_novo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_novoActionPerformed(evt);
            }
        });

        btn_salvar.setText(resourceMap.getString("btn_salvar.text")); // NOI18N
        btn_salvar.setEnabled(false);
        btn_salvar.setName("btn_salvar"); // NOI18N
        btn_salvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_salvarActionPerformed(evt);
            }
        });

        jLabel11.setText(resourceMap.getString("jLabel11.text")); // NOI18N
        jLabel11.setName("jLabel11"); // NOI18N

        jLabel10.setText(resourceMap.getString("jLabel10.text")); // NOI18N
        jLabel10.setName("jLabel10"); // NOI18N

        jLabel1.setFont(resourceMap.getFont("jLabel1.font")); // NOI18N
        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        jLabel9.setText(resourceMap.getString("jLabel9.text")); // NOI18N
        jLabel9.setName("jLabel9"); // NOI18N

        buttonGroup1.add(opt_nao);
        opt_nao.setText(resourceMap.getString("opt_nao.text")); // NOI18N
        opt_nao.setName("opt_nao"); // NOI18N

        buttonGroup1.add(opt_sim);
        opt_sim.setSelected(true);
        opt_sim.setText(resourceMap.getString("opt_sim.text")); // NOI18N
        opt_sim.setName("opt_sim"); // NOI18N

        txt_nome_departamento.setBackground(resourceMap.getColor("txt_nome_departamento.background")); // NOI18N
        txt_nome_departamento.setEditable(false);
        txt_nome_departamento.setForeground(resourceMap.getColor("txt_id_departamento.foreground")); // NOI18N
        txt_nome_departamento.setName("txt_nome_departamento"); // NOI18N

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        tbl_departamento.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "ID", "Chefe", "Seção", "Ativo"
            }
        ));
        tbl_departamento.setName("tbl_departamento"); // NOI18N
        tbl_departamento.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tbl_departamentoMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(tbl_departamento);

        txt_id_departamento.setBackground(resourceMap.getColor("txt_nome_departamento.background")); // NOI18N
        txt_id_departamento.setForeground(resourceMap.getColor("txt_id_departamento.foreground")); // NOI18N
        txt_id_departamento.setName("txt_id_departamento"); // NOI18N
        txt_id_departamento.setNextFocusableComponent(txt_chefe);
        txt_id_departamento.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txt_id_departamentoFocusLost(evt);
            }
        });

        txt_secao.setName("txt_secao"); // NOI18N
        txt_secao.setNextFocusableComponent(btn_salvar);
        txt_secao.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                txt_secaoFocusLost(evt);
            }
        });

        jLabel12.setText(resourceMap.getString("jLabel12.text")); // NOI18N
        jLabel12.setName("jLabel12"); // NOI18N

        jLabel8.setText(resourceMap.getString("jLabel8.text")); // NOI18N
        jLabel8.setName("jLabel8"); // NOI18N

        btn_atualizar.setText(resourceMap.getString("btn_atualizar.text")); // NOI18N
        btn_atualizar.setEnabled(false);
        btn_atualizar.setName("btn_atualizar"); // NOI18N
        btn_atualizar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_atualizarActionPerformed(evt);
            }
        });

        txt_chefe.setName("txt_chefe"); // NOI18N

        btn_excluir.setText(resourceMap.getString("btn_excluir.text")); // NOI18N
        btn_excluir.setEnabled(false);
        btn_excluir.setName("btn_excluir"); // NOI18N
        btn_excluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_excluirActionPerformed(evt);
            }
        });

        txt_id_secao.setBackground(resourceMap.getColor("txt_nome_departamento.background")); // NOI18N
        txt_id_secao.setEditable(false);
        txt_id_secao.setForeground(resourceMap.getColor("txt_id_departamento.foreground")); // NOI18N
        txt_id_secao.setName("txt_id_secao"); // NOI18N

        btnVoltar.setFont(resourceMap.getFont("btnVoltar.font")); // NOI18N
        btnVoltar.setMnemonic('v');
        btnVoltar.setText(resourceMap.getString("btnVoltar.text")); // NOI18N
        btnVoltar.setName("btnVoltar"); // NOI18N
        btnVoltar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnVoltarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(135, 135, 135)
                        .addComponent(jLabel1))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(21, 21, 21)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(73, 73, 73)
                                .addComponent(btn_novo)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(btn_salvar)
                                .addGap(12, 12, 12)
                                .addComponent(btn_excluir)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(btn_atualizar))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(16, 16, 16)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(jLabel10)
                                            .addComponent(jLabel9)
                                            .addComponent(jLabel8))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(opt_sim)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(opt_nao))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                                                .addComponent(jLabel12)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
                                            .addGroup(jPanel1Layout.createSequentialGroup()
                                                .addComponent(jLabel11)
                                                .addGap(44, 44, 44)))
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(txt_id_secao, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(txt_chefe, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                                .addComponent(txt_id_departamento, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(txt_nome_departamento, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addComponent(txt_secao, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 218, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 437, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(btnVoltar, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel11)
                    .addComponent(txt_id_secao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel12)
                    .addComponent(txt_id_departamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txt_nome_departamento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(10, 10, 10)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel10)
                    .addComponent(txt_chefe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel9)
                    .addComponent(txt_secao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel8)
                    .addComponent(opt_sim)
                    .addComponent(opt_nao))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btn_novo)
                    .addComponent(btn_salvar)
                    .addComponent(btn_excluir)
                    .addComponent(btn_atualizar))
                .addGap(7, 7, 7)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnVoltar)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(874, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(178, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void txt_secaoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txt_secaoFocusLost
        
}//GEN-LAST:event_txt_secaoFocusLost

    private void tbl_departamentoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tbl_departamentoMouseClicked
        habilita_botoes();
        txt_id_secao.setText(tbl_departamento.getModel().getValueAt(tbl_departamento.getSelectedRow(),0).toString());
        txt_chefe.setText(tbl_departamento.getModel().getValueAt(tbl_departamento.getSelectedRow(),1).toString());
        txt_secao.setText(tbl_departamento.getModel().getValueAt(tbl_departamento.getSelectedRow(),2).toString());
        if(tbl_departamento.getModel().getValueAt(tbl_departamento.getSelectedRow(),3).toString().equals("S")) {
            opt_sim.setSelected(true);
            opt_nao.setSelected(false);
        } else
            if(tbl_departamento.getModel().getValueAt(tbl_departamento.getSelectedRow(),3).toString().equals("N")) {
                opt_sim.setSelected(false);
                opt_nao.setSelected(true);
            }
}//GEN-LAST:event_tbl_departamentoMouseClicked

    private void btn_novoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_novoActionPerformed
        limpar_dados();
        habilita_botoes();
        btn_novo.setEnabled(false);
        txt_id_departamento.requestFocus();

        select_max();
}//GEN-LAST:event_btn_novoActionPerformed

    private void btn_salvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_salvarActionPerformed
   try
        {
            Secao secao = new Secao();
            
            //Setar o Objeto departamento selecionado
            Departamento departamento = new Departamento();
            List<Departamento> lista = new ArrayList ();
            lista = lista_departamento();
            int tamanho_lista = lista.size();
            for (int i=0; i<tamanho_lista; i++)
            {
                departamento = lista.get(i);
            }
            secao.setDepartamento(departamento);

            
            secao.setSecao(txt_secao.getText());
            secao.setChefe(txt_chefe.getText());
            secao.setDepartamento(departamento);

            //Departamento departamento = new Departamento();
            //secao.setDepartamento(txt_id_secao.getText());

            if(opt_sim.isSelected())
            {
                secao.setAtivo_secao("S");
                opt_nao.setSelected(false);
            }

            else
            if(opt_nao.isSelected())
            {
                secao.setAtivo_secao("N");
                opt_sim.setSelected(false);
            }

            if(validaDados()){
                DAOGenerico obj_secao = new DAOGenerico(secao);
                if(obj_secao.inserir()){
                    //btn_novoActionPerformed(evt);
                    txt_id_secao.setText("");
                    JOptionPane.showMessageDialog(null, "Seção salva com sucesso");
                    preencher_jtable();
                    desabilita_botoes();
                    btn_novo.setEnabled(true);
                    btn_novo.requestFocus();
                }
                else{
                    JOptionPane.showMessageDialog(null, "Seção não foi salva");
                }
            }
        }
        catch(Exception erro)
        {
            JOptionPane.showMessageDialog(null, "Não foi possível gravar seção "+erro);
        }
}//GEN-LAST:event_btn_salvarActionPerformed

    private void btn_excluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_excluirActionPerformed
        try {
            Secao secao = new Secao();
            int id = Integer.parseInt(txt_id_secao.getText());
            secao.setId_secao(id);
            //DAOGenerico obj_departamento = new DAOGenerico(departamento);

            String deletar = "Deletar a seção: "+txt_secao.getText()+" ?";
            int opcao_escolhida = JOptionPane.showConfirmDialog(null, deletar,"Tela de Exclusão"
                    ,JOptionPane.YES_NO_OPTION);
            if(opcao_escolhida == JOptionPane.YES_OPTION) {
                DAOGenerico obj_secao = new DAOGenerico(secao);
                if(obj_secao.excluir()){
                    btn_novoActionPerformed(evt);
                    txt_id_secao.setText("");
                    JOptionPane.showMessageDialog(null, "Seção excluída com sucesso");
                    preencher_jtable();
                    desabilita_botoes();
                } else{
                    JOptionPane.showMessageDialog(null, "Seção não foi excluída");
                }
            }
        } catch(Exception erro) {
            JOptionPane.showMessageDialog(null, "Não foi possível excluir seção"+erro);
        }
}//GEN-LAST:event_btn_excluirActionPerformed

    private void btn_atualizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_atualizarActionPerformed
        try {
            Departamento departamento = new Departamento();
            int id = Integer.parseInt(txt_id_secao.getText());
            departamento.setId_departamento(id);
            departamento.setDepartamento(txt_secao.getText());
            departamento.setDiretor(txt_chefe.getText());

            if(opt_sim.isSelected()) {
                departamento.setAtivo_departamento("S");
                opt_nao.setSelected(false);
            }

            else
                if(opt_nao.isSelected()) {
                    departamento.setAtivo_departamento("N");
                    opt_sim.setSelected(false);
                }


            if(validaDados()){
                DAOGenerico obj_departamento = new DAOGenerico(departamento);
                if(obj_departamento.atualizar()){
                    btn_novoActionPerformed(evt);
                    txt_id_secao.setText("");
                    JOptionPane.showMessageDialog(null, "Departamento atualizado com sucesso");
                    preencher_jtable();
                    desabilita_botoes();
                } else{
                    JOptionPane.showMessageDialog(null, "Departamento não foi atualizado");
                }
            }
        } catch(Exception erro) {
            JOptionPane.showMessageDialog(null, "Não foi possível atualizar departamento "+erro);
        }        // TODO add your handling code here:
}//GEN-LAST:event_btn_atualizarActionPerformed

    private void txt_id_departamentoFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txt_id_departamentoFocusLost
        Departamento departamento = new Departamento();
        //DAOGenerico obj_dao_generico = new DAOGenerico(secao);

        List<Departamento> lista = new ArrayList();
        lista = lista_departamento();
        int tamanho_lista = lista.size();

        for(int i = 0; i < tamanho_lista;i++)
        {
            departamento = lista.get(i);
        }
        txt_nome_departamento.setText(departamento.getDepartamento());
    }//GEN-LAST:event_txt_id_departamentoFocusLost

    private void btnVoltarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnVoltarActionPerformed
        Object[] options = { "Sim", "Não" };
        int opcao = JOptionPane.showOptionDialog(
                null,
                "Deseja sair da tela de Seção?",
                "Saída de Tela",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.WARNING_MESSAGE,
                null,
                options,
                options[0]);

        if (opcao == 0) {
            this.dispose();
            limpar_dados();
        }
}//GEN-LAST:event_btnVoltarActionPerformed

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new SecaoView().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnVoltar;
    private javax.swing.JButton btn_atualizar;
    private javax.swing.JButton btn_excluir;
    private javax.swing.JButton btn_novo;
    private javax.swing.JButton btn_salvar;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JRadioButton opt_nao;
    private javax.swing.JRadioButton opt_sim;
    private javax.swing.JTable tbl_departamento;
    private javax.swing.JTextField txt_chefe;
    private javax.swing.JTextField txt_id_departamento;
    private javax.swing.JTextField txt_id_secao;
    private javax.swing.JTextField txt_nome_departamento;
    private javax.swing.JTextField txt_secao;
    // End of variables declaration//GEN-END:variables


    public Boolean validaDados(){
        Boolean retorno = true;
        String erros = new String();

        if (txt_secao.getText().equals("")){
            erros += "Seção não informada\n";
            retorno = false;
        }

        if (txt_chefe.getText().equals("")){
            erros += "Chefe não informado\n";
            retorno = false;
        }

        if (txt_id_departamento.getText().equals("")){
            erros += "Digite o código do departamento para visualizar seu respectivo nome\n";
            retorno = false;
        }

        if ((opt_sim.isSelected()==false)&&(opt_nao.isSelected()==false)){
            erros += "Informe se a seção está ou não ativo\n";
            retorno = false;
        }

        if (!retorno){
            JOptionPane.showMessageDialog(null, "Os seguinte(s) erro(s) ocorreu(ram):\n"+erros);
        }

        return retorno;
    }

    public void desabilita_botoes()
    {
        btn_atualizar.setEnabled(false);
        btn_excluir.setEnabled(false);
        btn_salvar.setEnabled(false);
    }

    public void preencher_jtable()
    {
    try
    {
        tbl_departamento.getColumnModel().getColumn(0).setPreferredWidth(20);
        tbl_departamento.getColumnModel().getColumn(1).setPreferredWidth(120);
        tbl_departamento.getColumnModel().getColumn(2).setPreferredWidth(120);
        tbl_departamento.getColumnModel().getColumn(3).setPreferredWidth(40);

        DefaultTableModel modelo = (DefaultTableModel) tbl_departamento.getModel();
        modelo.setNumRows(0);

        Secao secao = new Secao();
        DAOGenerico obj_dao_generico = new DAOGenerico(secao);

        List<Secao> lista = new ArrayList();
        lista = obj_dao_generico.executa_query("order_by_id_sec");
        int tamanho_lista = lista.size();

        for(int i = 0; i < tamanho_lista;i++)
        {
            secao = lista.get(i);
            modelo.addRow(new Object[]{secao.getId_secao(),
                                       secao.getChefe(),
                                       secao.getSecao(),
                                       secao.getAtivo_secao(),
                                       });
        }
    }
    catch(Exception erro)
    {
        JOptionPane.showMessageDialog(null, "Não foi possível preencher tabela "+erro);
    }

    }

    public void limpar_dados()
    {
        //txt_id.setText("");

        txt_nome_departamento.setText("");
        txt_secao.setText("");
        txt_chefe.setText("");
        txt_id_departamento.setText("");
        opt_sim.setSelected(false);
        opt_nao.setSelected(false);


    }

    public void habilita_botoes()
    {
        btn_salvar.setEnabled(true);
        btn_excluir.setEnabled(true);
        btn_atualizar.setEnabled(true);

    }

    public void select_max()
    {
        Secao secao = new Secao();
        DAOGenerico obj_dao_generico = new DAOGenerico(secao);
        List<Secao> lista = new ArrayList();
        lista = obj_dao_generico.executa_query("select_max_id_sec");
        int tamanho_lista = lista.size();

        for(int i = 0; i < tamanho_lista;i++)
        {
            secao = lista.get(i);
            String id = String.valueOf(secao.getId_secao()+1);
            txt_id_secao.setText(id);
        }

    }

    public List lista_departamento()
    {
        Session sessao = HibernateUtil.getSessao();
        Transaction transacao = sessao.beginTransaction();
        Query query = sessao.createQuery("from Departamento where id_departamento = :id_dep");
        query.setString("id_dep", txt_id_departamento.getText());

        List departamentoList = query.list();

        if(departamentoList.isEmpty()){
            txt_nome_departamento.setText("");
            JOptionPane.showMessageDialog(null, "Não existe departamento com esse código!");
        }
            

        transacao.commit();
        sessao.close();

        return departamentoList;
    }


}
